3 research outputs found

    MoCIP: Un enfoque dirigido por modelos para el aprovisionamiento de infraestructura en la nube

    Full text link
    [ES] DevOps (Development & Operations) es un nuevo movimiento que fomenta la colaboración entre los desarrolladores y el personal de operaciones a través de un conjunto de principios, prácticas y herramientas para optimizar el tiempo de entrega del software. En particular, la práctica del despliegue continuo de software es una gran fuente de problemas y genera mucha atención cuando los artefactos de software se entregan tarde o cuando un defecto crítico llega a producción. Al mismo tiempo, la práctica del despliegue continuo es la frontera entre los desarrolladores y el personal de operaciones en el ciclo de entrega del software. En consecuencia, se recomienda iniciar la implantación de DevOps con la práctica del despliegue de software. Para enfrentar este desafío, los profesionales e investigadores están utilizando la Infraestructura como Código (Infrastructure as Code, IaC), que es un enfoque para la automatización de la infraestructura basado en prácticas de desarrollo de software. El objetivo de IaC es definir en un script todas las instrucciones para crear, actualizar y ejecutar recursos de infraestructura. En este escenario, la automatización del aprovisionamiento de la infraestructura acelera la práctica del despliegue continuo en el ciclo de entrega del software. La computación en la nube se ha convertido en el principal modelo de pago por uso utilizado por profesionales e investigadores para conseguir servicios en la nube en un corto período de tiempo. En este escenario, las compañías están pasando de generar potencia informática in-house hacia la obtención de recursos informáticos provistos en la nube a través de internet como servicios web. Al mismo tiempo, IaC y la computación en la nube están promoviendo algunos cambios en la industria. Por ejemplo, los equipos de operaciones pasan todo su tiempo trabajando en software, en lugar de configurar servidores y conectar cables de red. Existe una variedad de herramientas IaC que utilizan scripts para definir y ejecutar los recursos de infraestructura en diferentes proveedores de servicios IaaS (Infrastructure as a Service). Sin embargo, la diversidad de lenguajes de scripting de las herramientas IaC junto con la heterogeneidad del tipo de infraestructura que ofrece cada proveedor de servicios IaaS, han ocasionado que utilizar scripts IaC para el aprovisionamiento de infraestructura sea una actividad lenta y propensa a errores. El objetivo del proyecto de doctorado es proponer una solución a la diversidad de los lenguajes de scripting ¿de las herramientas IaC¿ y a la heterogeneidad del tipo de infraestructura que ofrece cada proveedor de servicios IaaS respecto al aprovisionamiento de infraestructura en la nube. Para afrontar estos desafíos se propone MoCIP (A Model-Driven Approach to Cloud Infrastructure Provisioning). MoCIP es un enfoque dirigido por modelos para el aprovisionamiento de la infraestructura en la nube que soporta IaC mediante la Ingeniería de Software Dirigida por Modelos (Model-Driven Engineering, MDE). MoCIP utiliza los dos principios fundamentales de MDE: abstracción y automatización. En primer lugar, se desarrolló el lenguaje específico de dominio ArgonML para abstraer las capacidades de la computación en la nube, tales como cómputo, elasticidad, almacenamiento y redes. El lenguaje ArgonML permite modelar los recursos de infraestructura de la nube. En segundo lugar, se desarrolló la herramienta ARGON para automatizar el aprovisionamiento de infraestructura en la nube. ARGON realiza transformaciones de modelo a modelo para generar modelos que representan la infraestructura de diferentes proveedores de servicios IaaS. Además, ARGON realiza transformaciones de modelo a texto para generar scripts IaC con la información subyacente de cada proveedor de servicios IaaS y de cada herramienta de aprovisionamiento de infraestructura.[CA] DevOps (Development & Operations) és un nou moviment que fomenta la col·laboració entre els desenvolupadors i el personal d'operacions a través d'un conjunt de principis, pràctiques i eines per a millorar el temps de lliurament del programari. En particular, la pràctica del desplegament continu de programari és una gran font de problemes i genera molta atenció quan els artefactes de programari s'entreguen tard o quan un defecte crític arriba a producció. Al mateix temps, la pràctica del desplegament continu és la frontera entre els desenvolupadors i el personal d'operacions en el cicle de lliurament del programari. En conseqüència, es recomana iniciar la implantació de DevOps amb la pràctica del desplegament de programari. Per a enfrontar aquest desafiament, els professionals i investigadors estan utilitzant la Infraestructura com a Codi (Infrastructure as Code, IaC), que és un enfocament per a l'automatització de la infraestructura basat en pràctiques de desenvolupament de programari. L'objectiu de IaC és definir en un script totes les instruccions per a crear, actualitzar i executar recursos d'infraestructura. En aquest escenari, l'automatització de l'aprovisionament de la infraestructura accelera la pràctica del desplegament continu en el cicle de lliurament del programari. La computació en el núvol s'ha convertit en el principal model de pagament per ús utilitzat per professionals i investigadors per a aconseguir serveis en el núvol en un curt període de temps. En aquest escenari, les companyies estan passant de generar potència informàtica in-house cap a l'obtenció de recursos informàtics proveïts en el núvol a través d'internet com a serveis web. Al mateix temps, IaC i la computació en el núvol estan promovent alguns canvis en la indústria, per exemple, els equips d'operacions passen tot el seu temps treballant en programari, en lloc de configurar servidors i connectar cables de xarxa. Existeix una varietat d'eines IaC que utilitzen scripts per a definir i executar els recursos d'infraestructura en diferents proveïdors de serveis IaaS (Infrastructure as a Service). No obstant això, la diversitat de llenguatges de scripting de les eines IaC juntament amb l'heterogeneïtat del tipus d'infraestructura que ofereix cada proveïdor de serveis IaaS, han ocasionat que utilitzar scripts IaC per a l'aprovisionament d'infraestructura siga una activitat lenta i propensa a errors. L'objectiu del projecte de doctorat és proposar una solució a la diversitat dels llenguatges de scripting ¿de les eines IaC¿ i a l'heterogeneïtat del tipus d'infraestructura que ofereix cada proveïdor de serveis IaaS respecte a l'aprovisionament d'infraestructura en el núvol. Per a afrontar aquests desafiaments es proposa MoCIP (A Model-Driven Approach to Cloud Infrastructure Provisioning). MoCIP és un enfocament dirigit per models per a l'aprovisionament de la infraestructura en el núvol que suporta IaC mitjançant l'Enginyeria de Programari Dirigida per Models (Model-Driven Engineering, MDE). MoCIP utilitza els dos principis fonamentals de MDE: abstracció i automatització. En primer lloc, es va desenvolupar el llenguatge específic de domini ArgonML per a abstraure les capacitats de la computació en el núvol tals com còmput, elasticitat, emmagatzematge i xarxes. El llenguatge ArgonML permet modelar els recursos d'infraestructura del núvol. En segon lloc, es va desenvolupar l'eina ARGON per a automatitzar l'aprovisionament d'infraestructura en el núvol. ARGON realitza transformacions de model a model per a generar models que representen la infraestructura de diferents proveïdors de serveis IaaS. A més, ARGON realitza transformacions de model a text per a generar scripts IaC amb la informació subjacent de cada proveïdor de serveis IaaS i de cada eina d'aprovisionament d'infraestructura.[EN] DevOps (Development & Operations) is a new movement that encourages collaboration between developers and operation staff through a set of principles, practices, and tools in order to optimize the software delivery time. In particular, continuous deployment is a software practice, which is a great source of problems and generates a lot of attention when software artifacts are delivered late, or a critical defect comes to production. At the same time, continuous deployment is the border between developers and operation staff in the software delivery cycle. Consequently, it is recommended to start the DevOps implantation with continuous deployment practice. To address this challenge, practitioners and researchers are using Infrastructure as Code (IaC), which is an approach to infrastructure automation based on software development practices. The aim of IaC is to define in a script all the instructions to create, update and execute infrastructure resources. In this scenario, infrastructure provisioning automation accelerates the continuous deployment in the software delivery cycle. Cloud computing has become the principal pay-as-you-go model used by practitioners and researchers to obtain cloud services in a short period of time. In this scenario, companies are moving from generating in-house computing power into obtaining computing resources provided by cloud computing through the Internet as web services. At the same time, IaC and cloud computing are promoting some changes in the industry. For instance, operation teams spend all their time working on software, instead of racking servers and plugging in network cables. There is a diversity of IaC tools that use scripts to define and execute infrastructure resources in different IaaS (Infrastructure as a Service) service providers. However, the diversity of scripting languages of IaC tools along with the heterogeneity of the type of infrastructure offered by each IaaS service provider have caused that the use of IaC scripts for infrastructure provisioning to be a time-consuming and error-prone activity. The aim of the Ph.D. project is to propose a solution to the diversity of scripting languages of IaC tools along with the heterogeneity of the type of infrastructure offered by each IaaS service provider regarding the cloud infrastructure provisioning. To face these challenges, a Model-Driven Approach to Cloud Infrastructure Provisioning (MoCIP) is proposed. MoCIP is a model-driven approach to cloud infrastructure provisioning that supports IaC through Model-Driven Engineering (MDE). MoCIP uses the fundamental principles of MDE: abstraction and automation. First, the domain-specific language called ArgonML was developed to abstract the capabilities of cloud computing such as computing, elasticity, storage, and networking. The ArgonML language allows modeling the cloud infrastructure. Second, the ARGON tool automates the cloud infrastructure provisioning. ARGON performs model-to-model transformations to generate models that represent the infrastructure of different IaaS service providers. In addition, ARGON performs model-to-text transformations to generate IaC scripts with the underlying information of the IaaS service provider along with the infrastructure provisioning tool.Sandobalín Guamán, JC. (2020). MoCIP: Un enfoque dirigido por modelos para el aprovisionamiento de infraestructura en la nube [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/139077TESI

    Un soporte a la comparación de modelos conceptuales en escenarios de evolución

    Full text link
    [EN] Continuous improvement of information systems are primarily motivated by organizational changes. Companies must rethink the way business processes that meet the new requirements, strategic goals and changes in their environment to meet business objectives. Changes in the organizations trigger the need to think in a reengineering of the information systems. Reengineering has three processes defined: the process of reverse engineering performs the extraction from an existing system for obtain the system specification, the evolution process consists of a set of transformations from the current system to a new system and forward engineering process are conventional software development activities. In the evolution process a system is changed to a higher level of abstraction, so the changes are made to the current system model (model As-Is) to obtain a new model (model To-Be) that has evolved to meet the changes of the organization. From the set of modifications made in the model of the current system to obtain the model of the new system, comes the need to study these changes for analyze their impact. This thesis presents a proposal to offer a support to the analysis of the models comparison in evolution scenarios with the development of a plugin to Eclipse. From the result of the models comparison is derived a delta model that is an instance of a metamodel evolution. A delta model has information about of the models comparison and with the help of operators (EQUAL, MODIFIED, ADDED, DELETED) specifies the kind of change between the elements of each model. Each element of a delta model has information about the traceability of evolution that suffered a system during reengineering. Traceability is a widely used concept because helps identify relations between the elements that belong to different models. To measure a delta model is used a set of metrics to get a numerical value, which is used to quantify changes over the resulting model in the evolution process. Each metric has the ability to assign a weight or numerical value to each of its elements for analyze the changes between models[ES] La continua evolución de los sistemas de información están motivados principalmente por cambios organizacionales. Las empresas deben repensar los procesos de negocio de manera que respondan a los nuevos requerimientos, metas estratégicas y cambios de su entorno para cumplir con los objetivos de la empresa. Los cambios organizacionales originan la necesidad de pensar en una reingeniería de los sistemas de información. La reingeniería posee tres procesos bien definidos: el proceso de ingeniería inversa realiza la extracción de un sistema existente para obtener la especificación del sistema, el proceso de evolución consiste en un conjunto de transformaciones desde un sistema actual hacia un sistema nuevo y el proceso de ingeniería directa son actividades convencionales de desarrollo de software. Durante el proceso de evolución se modifica un sistema desde un nivel más alto de abstracción, de esta manera se realizan los cambios en el modelo del sistema actual (modelo As-Is) para obtener un nuevo modelo que ha evolucionado (modelo To-Be) para satisfacer los cambios organizaciones. A partir del conjunto de modificaciones que se realizan en el modelo del sistema actual para conseguir el modelo del sistema nuevo, surge la necesidad de realizar un estudio sobre estos cambios para analizar su impacto. Esta tesis presenta una propuesta para ofrecer un soporte al análisis de la comparación de modelos en escenarios de evolución con el desarrollo de un plugin para Eclipse. A partir del resultado de la comparación de dos modelos se deriva un modelo delta que es una instancia de un metamodelo de evolución. Un modelo delta posee la información de la comparación de los modelos y con la ayuda de operadores (EQUAL, MODIFIED, ADDED, DELETED) especifica el tipo de cambio que existe entre los elementos de cada modelo. Cada elemento de un modelo delta, tiene información sobre la trazabilidad de la evolución que sufre un sistema durante la reingeniería. La trazabilidad es un concepto ampliamente utilizado porque ayuda a identificar las relaciones entre los elementos que pertenecen a diferentes modelos. Para medir un modelo delta se emplea un conjunto de métricas para obtener un valor numérico, que se utiliza para cuantificar los cambios sobre el modelo resultante en el proceso de evolución. Cada métrica tiene la capacidad de asignar un peso o valor numérico a cada uno de sus elementos, para realizar el análisis de los cambios entre los modelos.Sandobalín Guamán, JC. (2014). Un soporte a la comparación de modelos conceptuales en escenarios de evolución. http://hdl.handle.net/10251/59501Archivo delegad

    Análisis y desarrollo del sistema informático para administración y facturación de un restaurante

    No full text
    El análisis, implementación y documentación del sistema informático para administración y facturación de un restaurante se realizaron a través del Proceso Unificado Racional y dado que es una aplicación web también se utilizó el Método de Diseño Hipermedia Objeto Orientado. La plataforma de programación que se empleó para desarrollar y ejecutar el sistema de restaurantes es Java Enterprise Edition, utilizando una arquitectura Modelo Vista Controlador, lo que nos permitió distribuir el trabajo de creación de la aplicación en tres niveles: en la capa modelo para el manejo y control de datos se utilizó SessionBeans y EntityBeans; en la capa vista para la presentación visual del sistema se manejó la tecnología JavaServerFaces con la librería de de componentes visuales RichFaces para facilitar la integración de AJAX en la aplicación, y para utilizar plantillas se utilizó el framework Facelets; finalmente en la capa controlador para procesar las órdenes del usario se utilizó métodos de los Session Beans
    corecore